﻿package mortal.game.view.rebate.openServerSevenDay.data
{
    import Message.DB.Tables.*;
    import extend.language.*;
    import mortal.game.cache.*;
    import mortal.game.events.*;
    import mortal.game.manager.*;
    import mortal.game.mvc.*;
    import mortal.game.resource.*;
    import mortal.game.resource.tableConfig.*;
    import mortal.game.view.copy.QuestionCopy.data.*;
    import mortal.game.view.rebate.data.*;
    import mortal.mvc.core.*;

    public class OpenServerSevenDayUtil extends Object
    {
        public static const TotalDay:int = 7;
        public static const OpenDay:int = 7;
        public static const PowNum:int = 99;
        public static const LevelNum:int = 100;
        public static const testF:Boolean = false;
        public static const isOpenRank:Boolean = true;
        public static var LastDayNum:int = 0;
        private static var rewardObj:Object = {};

        public function OpenServerSevenDayUtil()
        {
            return;
        }// end function

        public function isIn7DayTime() : Boolean
        {
            var _loc_1:* = TotalDay * 24 * 3600;
            var _loc_2:* = getOpenServerSec();
            var _loc_3:* = _loc_1 - _loc_2;
            return _loc_3 > 0;
        }// end function

        public static function getSevenDayTabData() : Array
        {
            var _loc_4:Object = null;
            var _loc_5:int = 0;
            var _loc_1:* = getOpenServerDayNum();
            var _loc_2:Array = [];
            var _loc_3:Array = [];
            LastDayNum = 0;
            _loc_4 = {};
            _loc_4.dayNum = PowNum;
            _loc_2.push(_loc_4);
            _loc_3.push(_loc_4);
            _loc_4 = {};
            _loc_4.dayNum = LevelNum;
            _loc_2.push(_loc_4);
            _loc_3.push(_loc_4);
            _loc_5 = _loc_1;
            while (_loc_5 <= TotalDay)
            {
                
                if (_loc_5 <= OpenDay)
                {
                    _loc_4 = {};
                    _loc_4.dayNum = _loc_5;
                    _loc_2.push(_loc_4);
                }
                _loc_5++;
            }
            _loc_5 = 1;
            while (_loc_5 <= TotalDay)
            {
                
                if (_loc_5 <= OpenDay)
                {
                    _loc_4 = {};
                    _loc_4.dayNum = _loc_5;
                    _loc_3.push(_loc_4);
                }
                _loc_5++;
            }
            LastDayNum = _loc_2[(_loc_2.length - 1)].dayNum;
            var _loc_6:Array = [_loc_2, _loc_3];
            return _loc_6;
        }// end function

        public static function getOpenServerDayNum() : int
        {
            return ClockManager.instance.serverOpenDateNum;
        }// end function

        public static function getOpenServerSec() : int
        {
            if (testF)
            {
                return (getOpenServerDayNum() - 1) * 24 * 3600 + 2 * 60;
            }
            return (ClockManager.instance.nowDate.time - ClockManager.instance.serverOpenDate.time) / 1000;
        }// end function

        public static function getCountDownTime(param1:int) : Array
        {
            var _loc_2:Array = [];
            var _loc_3:* = ClockManager.instance.todayLeftMillisecond;
            _loc_3 = _loc_3 / 1000;
            var _loc_4:* = _loc_3 / 3600;
            var _loc_5:* = _loc_3 / 60 % 60;
            var _loc_6:String = "0";
            var _loc_7:* = "" + _loc_4;
            var _loc_8:* = (_loc_5 > 9 ? ("") : ("0")) + _loc_5;
            var _loc_9:Boolean = true;
            if (_loc_3 < 0 || _loc_3 > 24 * 3600)
            {
                _loc_9 = false;
            }
            _loc_3 = _loc_3 < 0 ? (0) : (_loc_3);
            _loc_2 = [_loc_6, _loc_7, _loc_8, _loc_3, _loc_9];
            return _loc_2;
        }// end function

        public static function get7dayCountDownTime() : Array
        {
            var _loc_1:Array = null;
            var _loc_2:* = TotalDay * 24 * 3600;
            var _loc_3:* = getOpenServerSec();
            var _loc_4:* = ClockManager.instance.serverOpenDate;
            var _loc_5:* = _loc_4.time;
            _loc_4 = new Date(_loc_4.fullYear, _loc_4.month, _loc_4.date);
            var _loc_6:* = (_loc_5 - _loc_4.time) / 1000;
            var _loc_7:* = _loc_2 - (_loc_3 + _loc_6);
            _loc_7 = _loc_7 < 0 ? (0) : (_loc_7);
            var _loc_8:* = int(_loc_7 / (24 * 3600));
            var _loc_9:* = int(_loc_7 / 3600) % 24;
            var _loc_10:* = int(_loc_7 / 60) % 60;
            var _loc_11:* = "" + _loc_8;
            var _loc_12:* = "" + _loc_9;
            var _loc_13:* = (_loc_10 > 9 ? ("") : ("0")) + _loc_10;
            _loc_1 = [_loc_11, _loc_12, _loc_13, _loc_7];
            return _loc_1;
        }// end function

        public static function getYearMonDay(param1:int) : String
        {
            param1 = param1 - 1;
            var _loc_2:* = ClockManager.instance.serverOpenDate.time;
            _loc_2 = _loc_2 + param1 * 24 * 3600 * 1000;
            var _loc_3:* = new Date(_loc_2);
            return Language.getStringByParam(71860, _loc_3.fullYear, (_loc_3.month + 1), _loc_3.date);
        }// end function

        public static function getFullDayString(param1:int) : String
        {
            return getYearMonDay(param1) + "0:00:00";
        }// end function

        public static function getTodayFullString() : String
        {
            var _loc_1:* = ClockManager.instance.serverOpenDateNum;
            var _loc_2:* = getYearMonDay(_loc_1);
            _loc_2 = _loc_2 + "0:00:00-" + _loc_2 + "23:59:59";
            return _loc_2;
        }// end function

        public static function getRewardsByDay(param1:int) : Array
        {
            var _loc_7:Object = null;
            var _loc_12:Object = null;
            var _loc_13:String = null;
            var _loc_14:Array = null;
            var _loc_2:Array = [];
            var _loc_3:Object = null;
            var _loc_4:* = RebateConfig.instance().targetArr;
            var _loc_5:int = 1;
            var _loc_6:* = Cache.instance.openServerSevenDay.dayNumToCfgTargetType[param1];
            var _loc_8:int = 0;
            while (_loc_8 < _loc_4.length)
            {
                
                _loc_3 = _loc_4[_loc_8];
                if (_loc_3.hasOwnProperty("order") == true && _loc_5 == _loc_3.type && _loc_6 == _loc_3.targetType && _loc_3.hasOwnProperty("targetLevel") == false)
                {
                    _loc_2.push(_loc_3);
                }
                if (_loc_3.hasOwnProperty("order") == false && _loc_5 == _loc_3.type && _loc_6 == _loc_3.targetType && _loc_3.hasOwnProperty("targetLevel") == true)
                {
                    _loc_7 = _loc_3;
                }
                _loc_8++;
            }
            _loc_2.sortOn("order", Array.NUMERIC);
            if (_loc_7)
            {
                _loc_2.push(_loc_7);
            }
            var _loc_9:Array = [];
            var _loc_10:int = 0;
            while (_loc_10 < _loc_2.length)
            {
                
                _loc_12 = ItemConfig.instance.getConfig(_loc_2[_loc_10].giftBag);
                if (_loc_12 == null)
                {
                }
                else
                {
                    _loc_13 = _loc_12.itemList1;
                    _loc_14 = QuestionCopyConfig.instance().getRewardItems(_loc_13);
                    _loc_9.push(_loc_14);
                }
                _loc_10++;
            }
            var _loc_11:Array = [_loc_9[0], _loc_9[1], _loc_9[3], _loc_9[(_loc_9.length - 1)]];
            return [_loc_11, _loc_2[(_loc_2.length - 1)]];
        }// end function

        public static function getRewardsByDay2(param1:int) : Array
        {
            var _loc_7:Object = null;
            var _loc_11:Object = null;
            var _loc_12:String = null;
            var _loc_13:Array = null;
            var _loc_2:Array = [];
            var _loc_3:Object = null;
            var _loc_4:* = RebateConfig.instance().targetArr;
            var _loc_5:int = 1;
            var _loc_6:* = Cache.instance.openServerSevenDay.dayNumToCfgTargetType[param1];
            var _loc_8:int = 0;
            while (_loc_8 < _loc_4.length)
            {
                
                _loc_3 = _loc_4[_loc_8];
                if (_loc_5 == _loc_3.type && _loc_6 == _loc_3.targetType)
                {
                    _loc_2.push(_loc_3);
                }
                _loc_8++;
            }
            _loc_2.sortOn("targetLevel", Array.NUMERIC | Array.DESCENDING);
            var _loc_9:Array = [];
            var _loc_10:int = 0;
            while (_loc_10 < _loc_2.length)
            {
                
                _loc_11 = ItemConfig.instance.getConfig(_loc_2[_loc_10].giftBag);
                if (_loc_11 == null)
                {
                }
                else
                {
                    _loc_12 = _loc_11.itemList1;
                    _loc_13 = QuestionCopyConfig.instance().getRewardItems(_loc_12);
                    _loc_9.push(_loc_13);
                }
                _loc_10++;
            }
            return _loc_9;
        }// end function

        public static function getCfgsByDay2(param1:int) : Array
        {
            var _loc_7:Object = null;
            var _loc_2:Array = [];
            var _loc_3:Object = null;
            var _loc_4:* = RebateConfig.instance().targetArr;
            var _loc_5:int = 1;
            var _loc_6:* = Cache.instance.openServerSevenDay.dayNumToCfgTargetType[param1];
            var _loc_8:int = 0;
            while (_loc_8 < _loc_4.length)
            {
                
                _loc_3 = _loc_4[_loc_8];
                if (_loc_5 == _loc_3.type && _loc_6 == _loc_3.targetType)
                {
                    _loc_2.push(_loc_3);
                }
                _loc_8++;
            }
            _loc_2.sortOn("targetLevel", Array.NUMERIC | Array.DESCENDING);
            return _loc_2;
        }// end function

        public static function getRandwardByOrder(param1:int, param2:int) : Array
        {
            var _loc_5:Array = null;
            var _loc_6:Object = null;
            var _loc_7:Array = null;
            var _loc_8:int = 0;
            var _loc_9:int = 0;
            var _loc_10:int = 0;
            var _loc_11:int = 0;
            var _loc_12:Array = null;
            var _loc_13:Object = null;
            var _loc_14:String = null;
            var _loc_15:Array = null;
            var _loc_3:* = RebateUtil.getType();
            var _loc_4:* = Cache.instance.openServerSevenDay.RangeTypeToTargetTypeObj[param1];
            if (!rewardObj[_loc_3])
            {
                rewardObj[_loc_3] = {};
                _loc_5 = RebateConfig.instance().targetArr;
                _loc_7 = [];
                _loc_8 = 0;
                while (_loc_8 < _loc_5.length)
                {
                    
                    _loc_6 = _loc_5[_loc_8];
                    if (_loc_6.hasOwnProperty("order") == true && _loc_6.hasOwnProperty("targetLevel") == false)
                    {
                        _loc_9 = _loc_6["type"];
                        _loc_10 = _loc_6["targetType"];
                        _loc_11 = _loc_6["order"];
                        if (!rewardObj[_loc_9])
                        {
                            rewardObj[_loc_9] = {};
                        }
                        if (!rewardObj[_loc_9][_loc_10])
                        {
                            rewardObj[_loc_9][_loc_10] = {};
                        }
                        _loc_12 = [];
                        _loc_13 = ItemConfig.instance.getConfig(_loc_6.giftBag);
                        if (_loc_13 == null)
                        {
                        }
                        else
                        {
                            _loc_14 = _loc_13.itemList1;
                            _loc_15 = QuestionCopyConfig.instance().getRewardItems(_loc_14);
                            rewardObj[_loc_9][_loc_10][_loc_11] = _loc_15;
                        }
                    }
                    _loc_8++;
                }
                return rewardObj[_loc_3][_loc_4][param2] as Array;
            }
            else if (rewardObj[_loc_3][_loc_4] && rewardObj[_loc_3][_loc_4][param2])
            {
                return rewardObj[_loc_3][_loc_4][param2] as Array;
            }
            return null;
        }// end function

        public static function isIndexDateOff(param1:int) : Boolean
        {
            if (param1 == 99 || param1 == 100)
            {
                return false;
            }
            var _loc_2:* = getOpenServerDayNum();
            if (_loc_2 > param1)
            {
                return true;
            }
            return false;
        }// end function

        public static function isTodayByTabIndex(param1:int) : int
        {
            if (param1 == 0 || param1 == 1)
            {
                return 99;
            }
            if (param1 == 2)
            {
                return 0;
            }
            return 1;
        }// end function

        public static function needRechargeGod() : Boolean
        {
            Dispatcher.dispatchEvent(new DataEvent(EventName.ShowBindCoinPackWin));
            return false;
        }// end function

        public static function getOpenActiveName() : String
        {
            if (RebateUtil.isActionOpen(1) && Cache.instance.rebate.oneSevenType != 0)
            {
                return Cache.instance.openServerSevenDay.getTargetTypeName();
            }
            return "";
        }// end function

        public static function getEffByDay(param1:int) : String
        {
            var _loc_2:int = 100001;
            if (param1 >= 1 && param1 <= 7)
            {
                _loc_2 = 100000 + param1;
            }
            else
            {
                if (param1 == 99 || param1 == 100)
                {
                    return null;
                }
                if (param1 == -4)
                {
                    _loc_2 = 100008;
                }
                else if (param1 == -7)
                {
                    _loc_2 = 100009;
                }
            }
            var _loc_3:* = PlayerModelConfig.instance.getModelShowById(_loc_2);
            if (_loc_3 == null)
            {
                return null;
            }
            return _loc_3.selfEffect;
        }// end function

        public static function isNotOpenSpeActive() : Boolean
        {
            return false;
        }// end function

    }
}
